In 3D computer graphics, much of the information contained within a scene is encoded as surface properties of 3D geometry. Texture mapping, which is an efficient technique for encoding this information as bitmaps, is therefore an integral part of the process of rendering an image. Reading directly from textures usually does not provide satisfactory image quality as the projection of 3D geometry often requires some form of resampling and as a result, as part of rendering a scene, a graphics processing unit (GPU) performs texture filtering. This may, for example, be because the pixel centres (in the rendered scene) do not align with the texel centres in the texture (where a texture comprises an array of texels, such that texels in a texture are analogous to the pixels in an image) and in different situations, pixels can be larger or smaller than texels.
There are many different methods for texture filtering, including volumetric, anisotropic and trilinear filtering and in various examples, these methods may be applied in various combinations. Filtering can be a computationally expensive operation and the hardware required to implement it can be large.
The embodiments described below are provided by way of example only and are not limiting of implementations which solve any or all of the disadvantages of known methods of implementing texture filtering in hardware.